package org.xyl.chat.engine;


import com.alibaba.dashscope.app.*;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import org.xyl.chat.common.AIConstants;

import java.util.Arrays;
import java.util.List;

public class MultiChatEngine {


        public static void callWithSession()
                throws ApiException, NoApiKeyException, InputRequiredException {
            ApplicationParam param = ApplicationParam.builder()
                    // 若没有配置环境变量，可用百炼API Key将下行替换为：.apiKey("sk-xxx")。但不建议在生产环境中直接将API Key硬编码到代码中，以减少API Key泄露风险。
                    .apiKey(AIConstants.appKey)
                    // 替换为实际的应用 ID
                    .appId(AIConstants.appId)
                    .prompt("你是谁？")
                    .build();

            Application application = new Application();
            ApplicationResult result = application.call(param);

            param.setSessionId(result.getOutput().getSessionId());
            param.setPrompt("你有什么技能?");
            result = application.call(param);

            System.out.printf("%s\n session_id: %s\n",
                    result.getOutput().getText(), result.getOutput().getSessionId());
        }

        public static void main(String[] args) {
            try {
                callWithSession();
            } catch (ApiException | NoApiKeyException | InputRequiredException e) {
                System.out.printf("Exception: %s", e.getMessage());
                System.out.println("请参考文档：https://help.aliyun.com/zh/model-studio/developer-reference/error-code");
            }
            System.exit(0);
        }
}
